POČÍTAČ A ARDUINO UNO 3

Vágner Vlastimil

    Z nedávné doby kdy mi zbyli moduly osazené integrovanými obvody L298 které jsem zakoupil v [1] a využíval jsem je při testování programů pro PICAXE s přípravky pro ovládání DC elektromotorků před konečnou výrobou. Jsem se rozhodl zkusit si napsat další jednoduchý program a takto si ovládat tyto moduly i pomocí Arduina a parametry pro ovládání motorů opět zadávat z počítače PC. Program s modulem rozšiřuje o další zapojení uvedená v [2].

 

MODUL S IO L298

    Deska s osazeným IO umožňuje ovládat dva DC motory nebo jeden krokový motorek, napájení připojených motorů je z externího zdroje a nesmí překročit proud jedním kanálem 2A (celkem 4A). Volbou ponechání propojky (Jumperu) na DPS volíme i napájení IO na modulu z externího zdroje a napětí pro IO L298 je stabilizováno na napětí +5V osazeným stabilizátorem na DPS modulu, v případě odebrání propojky je napájení motoru a napájení modulu odděleno. Externí napájecí zdroj se připojuje do osazených svorek na DPS označených NAPÁJENÍ POHONU/MODULU a GND. Pokud je napájení modulu IO odděleno od napájení pohonu (motorků) připojuje se napájecí napětí +5V pro IO na modulu do svorek označených GND a + 5V DC. Vstupy na modulu označené IN1 a IN2 ovládají směr otáčení motorku označeného „A“ a otáčky se ovládají výstupem ENABLE1 pokud je tento vstup IO na DPS ponechán propojen Jumperem pak se motorek otáčí na plné otáčky. Pokud je uvedený Jumper  odebrán z DPS řídí se otáčky výstupem z řídícího mikrokontroléru pomocí PWM. Vstupy na modulu označené IN3 a IN4 ovládají směr otáčení motorku označeného „B“ a otáčky se ovládají výstupem ENABLE2, pokud je tento vstup IO na DPS ponechán propojen Jumperem pak se motorek otáčí na plné otáčky. Pokud je uvedený Jumper  odebrán z DPS řídí se otáčky výstupem z řídícího mikrokontroléru pomocí PWM. Motorky nebo krokový motorek se připojuje do svorek na DPS modulu označených motor „A“ a motor „B“. Řídící signály IN1, IN2, IN3 a IN4 a signály ENÁBLE1 a ENÁBLE2 integrovaného obvodu L298  se ovládají digitálními výstupy na desce Arduina označené D2, D3, D4, D5, D6, D7. U digitálních výstupů D3, D5 je možno použít regulaci PWM která v tomto případě reguluje otáčky DC motorků. Digitální výstup označený D2 ovládá signál IN1, digitální výstup označený D3 ovládá signál PWM ENÁBLE1, digitální výstup označený D4 ovládá signál IN2 uvedené signály ovládají motor označený na desce „A“. Digitální výstup označený D6 ovládá signál IN3, digitální výstup označený D5 ovládá signál PWM ENÁBLE2, digitální výstup označený D7 ovládá signál IN4 uvedené signály ovládají motor označený na desce „B. Schéma propojení desky Arduino Uno a modulu s L298 je na obrázku č.01.

                    

        

 

PROGRAMY PRO POČÍTAČ A ARDUINO

    Programy pro počítač jsou dva jde o jednoduché terminálové programy pro sériovou komunikaci jeden má název RS_232.EXE a druhý ARDUINO.EXE. Jsou napsány ve VB6 a jsou uloženy v adresáři Počítač kde je také celkový popis ovládání programů v souboru PDF oba programy jsou na ovládání shodné. Je možné je používat i pro komunikaci s jiným koncovým zařízením, v tomto případě je používám pro komunikaci s Arduino modulem. Program pro Arduino je uložen v adresáři ARDUINO s názvem L298.ino.

 

PROGRAM L298.INO

     Program je napsán tak že po nahrání programu do desky Arduino Uno se již pouze zadávají parametry (hodnoty) pro směr a rychlost obou motorků současně, nebo jednotlivě dle naší volby z terminálu spuštěném na počítači. A pro každou změnu (parametru) se již nemusí upravovat celý program a znovu programovat do desky Arduina, což na desce Arduino Uno prodlužuje dobu používání paměti v použitém mikrokontroléru Atmega328. Oba programy jsou velice jednoduché a upravit si program pro Arduino zvládne každý kdo si programuje doma pro zábavu. Programy pro počítač RS_232.EXE a ARDUINO:EXE pokud není použit kabel pro programování desky Arduino Uno, využíváají převodník USB/COM CH340 což je převodník USB//COM-TTL. Při komunikaci s deskou Arduino bez programovacího kabelu je vždy nutné použít převodník který má výstupy TTL pro připojení na signály TXD a RXD vyvedené na řadový konektor. Uvedené programy jsou hlavně určeny pro odzkoušení ovládání DC motorků s uvedenou deskou modulu L298 a Arduino Uno a mohou posloužit jako inspirace při pokusech psaní vlastních programů. !Ne vždy vše funguje i když překladač pro Arduino Uno nenajde chybu v překladu!.

 

ZADÁVÁNÍ DAT PRO OVLÁDÁNÍ MOTORŮ Z PC

    Po propojení počítače a desky Arduina s modulem L298 podle Obr.č.01 připojíme externí napájecí napětí pro motory. Na počítači spustíme program RS_232.EXE nebo ARDUINO:EXE zvolíme komunikační port (popis je i v souboru PDF k tomuto programu), otevřeme komunikaci kliknutím na tlačítko „OTEVŘÍT COM“ a do okna pod nápisem „ZÁPIS TEXT“ zadáme hodnoty jako první zadáváme hodnoty pro vstupy IN1, IN2, IN3, IN4 a hodnoty PWM motoru „A“ a hodnotu PWM pro motor „B“ nebo pro ten motor který chceme ovládat. Po zadání všech hodnot klikneme na tlačítko „ODESLAT ZÁPIS TEXT“ a poté jsou data odeslána do Arduina a navolený motor nebo oba motory se rozběhnou. Vypnutí navoleného motoru provedeme takto u navoleného motoru označíme myší hodnotu PWM a tuto pro VYPNUTÍ MOTORU PŘEPÍŠEME „0“ a opět odešleme kliknutím na tlačítko „ODESLAT ZÁPIS TEXT“, nebo klikneme na tlačítko SMAZAT ZADÁNÍ TEXT a všechny hodnoty i s tou kterou chceme změnit zapíšeme znova a odešleme kliknutím myši na tlačítko ODESLAT ZÁPIS TEXT. Kliknutím na tlačítko „ULOŽIT ZÁPIS/ČTENÍ“ si uložíme zadávaná a načtená data na disk pro další potřebu, kliknutím na tlačítka s popisy „SMAZAT ČTENÍ TEXT, SMAZAT ZÁPIS TEXT a SMAZAT VŠE“ smažeme zapsané hodnoty v uvedených oknech.

    PŘÍKLAD ZADÁVÁNÍ DAT : chceme aby se točil motor označený „A“ vlevo zadáme postupně hodnoty : IN1 hodnota „1“, IN2 hodnota „0“, IN3 hodnota „0“, IN4 hodnota „0“ další hodnota bude PWM „0 – 255“ pro motor „A“ a poslední hodnota bude „0“. To znamená že v textovém okně terminálu který je použit pro komunikaci s modulem Arduino a modulem L298 bude zadáno „1,0,0,0,150,0. A tuto hodnotu odešleme a motor označený „A“ se bude točit vlevo dle hodnoty PWM (150), motor vypneme tak že levým tlačítkem myši si označíme hodnotu „150“ a tuto přepíšeme hodnotou „0“ a odešleme do Arduina. Pokud chceme aby se otáčel motor „A“ vpravo zadáme postupně hodnoty 0,1,0,0,80,0 a tyto odešleme do Arduino desky a motor „A“ se bude otáčet vpravo, vypnutí motoru provedeme stejným způsobem jak je popsáno výše. Pokud chceme aby se otáčel pouze motor „B“ vlevo zadáme postupně hodnoty 0,0,1,0,0,150 a tyto odešleme do desky Arduino motor „B“ se bude otáčet vlevo. Vypnutí motoru provedeme stejným způsobem popsaným výše, stejně tak pokud chceme aby se otáčel opačným směrem než je navolený směr zadáme 0,0,0,1,0,80. Pokud chceme aby se točili oba motory zadáme postupně v okně terminálu hodnoty 1,0,0,1,80,150 tímto příkazem se budou otáčet oba motory motor „A“ vlevo rychlost otáček bude dle hodnoty 80, motor „B“ se bude otáčet vpravo rychlost otáček bude dle hodnoty 150. Oba motory nebo jeden motor zastavíme tak že hodnoty 80 a 150 podle toho který motor chceme zastavit přepíšeme na hodnotu „0“ a odešleme do desky Arduina.

     Zadávané hodnoty v textovém terminálu znamenají : první dvě hodnoty znamenají volbu směru chodu motoru „A“, další dvě hodnoty znamenají volbu směru chodu motoru „B“. další hodnota je pro výpočet PWM motoru „A“, a poslední zadávaná hodnota je pro výpočet PWM motoru „B“. zadané hodnoty pro oba motory 0,1,1,0,150,100 znamenají motor „A“ vpravo, motor „B“ vlevo, PWM motoru „A“ je 150, PWM motoru „B“ je 100. Aby odpovídal směr otáčení motoru podle parametrů v programu je důležité odzkoušet jejich připojení do svorek na modulu L298 a programem postupně volit chod motoru „A“ například vlevo tak aby se směr otáčení motoru shodoval  s navoleným chodem a stejně tak odzkoušet i motor „B“.

      

     ! NIKDY NESMÍTE U JAKÉHOKOLIV NAVOLENÉHO MOTORKU „A“ NEBO „B“ ZA CHODU ZMĚNIT SMĚR OTÁČENÍ!! VŽDY NEJPRVE VYPNĚTE CHOD MOTORKU A POTÉ ZMĚNTE SMYSL OTÁČEK MOTORKU JINAK DOJDE K OKAMŽITÉMU ZNIČENÍ MODULU L298 NADMĚRNÝM ODEBÍRANÝM PROUDEM!!!.   

 

    

        Zadané parametry oba motory chod dle PWM

 

   

       Motor „A“ chod motor „B“ stop

 

   

      Motor „A“ stop motor „B“ chod

 

   

   Modul L298 a připojené motory „test programu“

 

   Deska modulu Arduino Uno zapojená do kontaktního pole při testování programu

 

    Motor „A“ chod testování programu

 

   Motor „B“ chod testování programu

 

    Motor „A“ a motor „B“ chod testování programu

  

    Použité prameny :

    Burkhard Kainka elektronika s podporou PC Visuál Basic v praxi

    Pro Arduino čerpáno z internetu

    [1] modul zakoupen v Laskarduino shopu

    [2] www.mojeelektronika.mzf.cz

    Bližší informace :

    vagnervlastimil@seznam.cz